/*
 【入门】二分查找
  题目描述
    请在一个有序递增数组中（不存在相同元素），采用二分查找，找出值 x 的位置，如果 x 在数组中不存在，请输出-1！
  输入
    第一行，一个整数 n，代表数组元素个数（n <= 10^6）
    第二行，n 个数，代表数组的 n 个递增元素（1 <= 数组元素值 <= 10^8）
    第三行，一个整数x，代表要查找的数（0 <= x <= 10^8）
  输出
    x 在数组中的位置，或者 -1。
  样例输入
    10
    1 3 5 7 9 11 13 15 17 19
    3
  样例输出
    2
*/

#include <bits/stdc++.h>

using namespace std;

int a[1000005] = {};

int main() {
    int n;
    int x;

    cin >> n;
    for (int i = 1; i <= n; i++){
        cin >> a[i];
    }

    cin >> x;

    /*
      s 和 e 确定了二分查找的数据范围(对应的下标),
        其中, s (start) 为开始下标(左下标), e (end) 为结束下标(右下标);
    */
    int s = 1, e = n;
    while (s <= e) { // 注意: 如果 s == e时, 则还有数据没查找完；s > e时, 数据已遍历完
        int m = (s + e) / 2;    // m 为二分查找算法使用的中间下标
        if (x > a[m]) {
            s = m + 1;
        } else if (x < a[m]) {
            e = m - 1;
        } else {
            cout << m;
            return 0;
        }
    }

    cout << "-1"; // 没有找到

    return 0;
}